Improve retirement income imputation and calibration#496
Merged
Conversation
3d73246 to
1df970b
Compare
- Use CPS ASEC SS_SC1/SS_SC2 source codes (instead of age-62 heuristic) to classify Social Security into retirement, disability, survivors, and dependents categories - Parameterize retirement contribution limits by year (2020-2025) instead of hardcoding 2022 values - Update taxable pension fraction from 1.0 (arbitrary) to 0.590 based on SOI 2015 Table 1.4 - Add age and is_male as QRF predictors for pension contribution imputation from CPS to PUF - Add SSA benefit-type calibration targets ($1,060B retirement, $148B disability, $160B survivors, $84B dependents) - Add IRA contribution calibration targets ($25B traditional, $39B Roth) from IRS SOI accumulation tables Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use RESNSS1/RESNSS2 (already extracted in PERSON_COLUMNS) instead of non-existent SS_SC1/SS_SC2 for Social Security type classification. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Mirror the new HARD_CODED_TOTALS entries (SS benefit types and IRA contributions) in etl_national_targets.py to keep the database in sync with loss.py, per the approach introduced in PR #488. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The same national targets exist in both loss.py and db/etl_national_targets.py. A future PR should wire build_loss_matrix() to read from policy_data.db so the hardcoded dict can be removed. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1df970b to
a2b4544
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
SS_SC1/SS_SC2source codes to classify Social Security income into retirement, disability, survivors, and dependents (replacing age-62 heuristic). Falls back to age-62 for records without source codes.taxable_pension_fractionfrom 1.0 (arbitrary) to 0.590 based on SOI 2015 Table 1.4 ($690B taxable / $1,169B total).ageandis_malealongsideemployment_incomefor pension contribution imputation from CPS to PUF.Test plan
social_securityafter four-way split🤖 Generated with Claude Code